package com.hbnu.iostream;

import java.io.*;

/**
 * 需求：通过字节输出流往磁盘文件中写入内容
 *
 * @author kittychen
 * @since 2025-10-11 16:28
 */
public class OutputStreamDemo {
    public static void main(String[] args) {
        // 1、准备文件对象
        String path = "C:" + File.separator + "Users" + File.separator + "Administrator"
                + File.separator + "Desktop" + File.separator + "kittychen"
                + File.separator + "class2311" + File.separator + "test.txt";
        File file = new File(path);

        // 2、准备流资源
        OutputStream outputStream = null;
        try {
            outputStream = new FileOutputStream(file, true);   // true表示追加内容，false（默认值）表示覆盖内容

            // 3、通过流对象往文件中写入内容
            String content = "\r\n学校规定要补课";
            byte[] bytes = content.getBytes();   // 因为选择的流是字节流，而内容是字符的，所以需要将字符数据转为字节数据
            // outputStream.write(bytes);   // 一次性将所有的字节数写入到文件中

            // 一个字节一个字节的将数据写入到文件中
            for (byte aByte : bytes) {
                outputStream.write(aByte);
            }

            System.out.println("写入成功");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 4、关闭流资源
            try {
                if (outputStream != null) {
                    outputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
